import {
    HTMLSnippetInstructions,
    JSWebInstructions,
    ProductAnalyticsAPIInstructions,
    ProductAnalyticsAndroidInstructions,
    ProductAnalyticsAngularInstructions,
    ProductAnalyticsAstroInstructions,
    ProductAnalyticsBubbleInstructions,
    ProductAnalyticsDjangoInstructions,
    ProductAnalyticsElixirInstructions,
    ProductAnalyticsFlutterInstructions,
    ProductAnalyticsFramerInstructions,
    ProductAnalyticsGoInstructions,
    ProductAnalyticsHeliconeInstructions,
    ProductAnalyticsIOSInstructions,
    ProductAnalyticsLangfuseInstructions,
    ProductAnalyticsLaravelInstructions,
    ProductAnalyticsNextJSInstructions,
    ProductAnalyticsNodeInstructions,
    ProductAnalyticsNuxtJSInstructions,
    ProductAnalyticsPHPInstructions,
    ProductAnalyticsPythonInstructions,
    ProductAnalyticsRNInstructions,
    ProductAnalyticsReactInstructions,
    ProductAnalyticsRemixJSInstructions,
    ProductAnalyticsRubyInstructions,
    ProductAnalyticsSvelteJSInstructions,
    ProductAnalyticsTraceloopInstructions,
    ProductAnalyticsVueInstructions,
    ProductAnalyticsWebflowInstructions,
} from '.'

import { SDKInstructionsMap, SDKKey } from '~/types'

export const ProductAnalyticsSDKInstructions: SDKInstructionsMap = {
    [SDKKey.JS_WEB]: JSWebInstructions,
    [SDKKey.ANDROID]: ProductAnalyticsAndroidInstructions,
    [SDKKey.ANGULAR]: ProductAnalyticsAngularInstructions,
    [SDKKey.REACT]: ProductAnalyticsReactInstructions,
    [SDKKey.API]: ProductAnalyticsAPIInstructions,
    [SDKKey.ASTRO]: ProductAnalyticsAstroInstructions,
    [SDKKey.BUBBLE]: ProductAnalyticsBubbleInstructions,
    [SDKKey.DJANGO]: ProductAnalyticsDjangoInstructions,
    [SDKKey.ELIXIR]: ProductAnalyticsElixirInstructions,
    [SDKKey.FLUTTER]: ProductAnalyticsFlutterInstructions,
    [SDKKey.FRAMER]: ProductAnalyticsFramerInstructions,
    [SDKKey.GO]: ProductAnalyticsGoInstructions,
    [SDKKey.HELICONE]: ProductAnalyticsHeliconeInstructions,
    [SDKKey.HTML_SNIPPET]: HTMLSnippetInstructions,
    [SDKKey.IOS]: ProductAnalyticsIOSInstructions,
    [SDKKey.LANGFUSE]: ProductAnalyticsLangfuseInstructions,
    [SDKKey.LARAVEL]: ProductAnalyticsLaravelInstructions,
    [SDKKey.NEXT_JS]: ProductAnalyticsNextJSInstructions,
    [SDKKey.NODE_JS]: ProductAnalyticsNodeInstructions,
    [SDKKey.NUXT_JS]: ProductAnalyticsNuxtJSInstructions,
    [SDKKey.PHP]: ProductAnalyticsPHPInstructions,
    [SDKKey.PYTHON]: ProductAnalyticsPythonInstructions,
    [SDKKey.REACT_NATIVE]: ProductAnalyticsRNInstructions,
    [SDKKey.REMIX]: ProductAnalyticsRemixJSInstructions,
    [SDKKey.RUBY]: ProductAnalyticsRubyInstructions,
    [SDKKey.SVELTE]: ProductAnalyticsSvelteJSInstructions,
    [SDKKey.TRACELOOP]: ProductAnalyticsTraceloopInstructions,
    [SDKKey.VUE_JS]: ProductAnalyticsVueInstructions,
    [SDKKey.WEBFLOW]: ProductAnalyticsWebflowInstructions,
}
